package com.huike.dao;

import com.huike.po.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
@Mapper
/**
 * 用户账号信息相关的操作
 */
public interface UserDAO {
    public User selectUserByAccountAndRole(@Param("account") String account , @Param("roleId")int roleId);
    public UserDetail selectUserDetailByAccount(@Param("account") String account);

    public List<User> selectSubscribeList(@Param("account") String account);

    //获取用户与好友的最后一条消息记录集合，作为用户的p2p会话
    public List<p2pMessage> selectFriendLastChat (@Param("account") String account);

    //获取用户与群聊的最后一条消息记录集合，作为用户的群聊会话
    public List<GroupMessage> selectGroupLastChat (@Param("account") String account);

    //根据账号统计用户的每个会话P2P离线消息的未读数目
    public List<p2pOfflineUnread> selectP2PUnReadNum (@Param("account") String account);

    //根据账号统计用户的每个群聊离线消息的未读数目
    public List<GroupOfflineUnread> selectGroupUnReadNum (@Param("account") String account);

    //根据账户查询用户在线的客户端数目
    public int selectOnlineNumByAccount (@Param("account") String account);

    //根据账户更新用户的在线状态
    public void updateUserStatus(UserOnline userOnline);
    //插入新用户
    public boolean insertUserAccount(@Param("account") String account, @Param("password") String password);
    public boolean updateUserRole(@Param("account") String account, @Param("role") int role);

}
